#!/usr/bin/env python
# Copyright (c) 2008, RPI-ACM, Jesse Kempf <jessekempf@gmail.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# - Redistributions of source code must retain the above copyright notice,
#     this list of conditions and the following disclaimer.
# - Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
# - Neither the names of the RPI-ACM nor the names of its contributors
#     may be used to endorse or promote products derived from this software
#     without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
#  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
#  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
#  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
#  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
#  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import imp
import os
import os.path

from distutils.core import setup, Extension

def load_contrib_setup(modname):
	workdir = os.path.dirname(__file__) or os.getcwd()
	contrib_root = os.path.join(workdir, 'contrib', modname)

	print contrib_root

	module = imp.find_module('setup', [contrib_root])

	return imp.load_module(modname, *module)

module1 = Extension('fdextras',
		sources = ['unixutils/fdextras.c'])
safesig = Extension('safesig',
		sources = ['unixutils/safesig.c'])
passfd = Extension('passfd', sources = ['unixutils/passfd.c'])

# CONTRIB

spt = load_contrib_setup('setproctitle')

# Correct the source paths for setproctitle.
spt.mod_spt.sources = [ os.path.join('contrib/setproctitle', x)
						for x in spt.mod_spt.sources ]

setup(name = 'unixutils',
	version = '0.3a2',
	description = 'py-unixutils: Unix tools for Python.',	
	ext_package = 'unixutils',
	ext_modules = [module1, safesig, passfd, spt.mod_spt],
	packages=['unixutils', 'unixutils.privsep', 'unixutils.privsep.commands',
		'unixutils.testing'])
